#!/bin/rc
# backuparenas dev name ... - dump arena `name' from $fs to blu-ray disc.
#	assumes $set is set.
rfork ne
# tunable variables
fs=pie

if (test -e /sys/lib/backup/funcs)
	.   /sys/lib/backup/funcs

exits=''
fsroot=/n/$fs
if (! test -e $fsroot/!THIS_IS_^`{echo $fs | tr a-z A-Z}^_MAIN) {
	import $fs / $fsroot || exit
}
unmount /mnt/cd >[2]/dev/null
cdfs -d $1 || exit
shift

done=no
echo -n figuring out disc type...
for (i in `{seq 1 20})
	if (~ $done no) {
		m=`{ls -l /mnt/cd | grep bd-r-dl}
		if (~ $m '' ()) {
			echo -n .
			sleep 3
		}
		if not
			done=yes
	}
echo

ls -l /mnt/cd
grep next /mnt/cd/ctl
echo -n 'nwa ok? '
ok=`{read}
if (! ~ $ok [Yy]*)
	exit bad-nwa

cd $fsroot/dev/fs
shname = `{basename $arenas}
if (! test -r $shname){
	echo $0: $shname in `{pwd} not readable >[1=2]
	exit unreadable-arenas
}

for (name) {
	grep next /mnt/cd/ctl
	# use -o 8192 to avoid devmnt fragmentation if bd drive is imported
	venti/rdarena $shname $name |
		pump -i 65536 -o 8192 -k 100000 -d 5 >/mnt/cd/wd/$name
#		pump -i 65536 -o 1048576 -k 51200 -d 10 >/mnt/cd/wd/$name
	quitonfailure $status

#	ls -l /mnt/cd
	if (test -e '/env/fn#dumpdone' -a -e '/env/set')
		dumpdone $shname $name
}
echo 'remember to *not* remove /mnt/cd/wd' >[1=2]
# don't remove /mnt/cd/wd, since that would finalize the disc
# and bugger the permanent toc, at least on bd-r.
exit ''
